//存放主要交互逻辑js代码
//javascript模块化
//seckill.detail.init(params)
var seckill={
	classpath:"",	
	//获取工程根路径
	getpath :{
		getPassth:function(url){
		seckill.classpath=url;
	}
	},	
	//封装秒杀相关ajax的url
	URL:{
		now : function(){
			return  seckill.classpath+'/seckill/time/now';
		},
		exposer : function(seckillId){
			return  seckill.classpath+'/seckill/'+seckillId+'/exposer';
		},
		execution : function(seckillId,md5){
			return  seckill.classpath+'/seckill/'+seckillId+'/'+md5+'/execution';
		}

	},
	//处理秒杀逻辑
	handleSeckill:function(seckillId,node){
		//获取秒杀地址，控制显示逻辑，执行秒杀		
		node.hide()
		    .html('<button class="btn btn-primary btn-lg" id="killBtn">开始秒杀</button>');
		$.post(seckill.URL.exposer(seckillId),{},function(result){
			//在回调函数中，执行交互流程
			if(result && result['success']){
				var exposer = result['data'];
				if(exposer['exposed']){
					//开始秒杀
					//获取秒杀地址
					var md5 = exposer['md5'];
					var killUrl = seckill.URL.execution(seckillId, md5);
					node.show();
					console.log("killUrl:"+killUrl);
					$("#killBtn").one("click",function(){
						//1.绑定执行秒杀请求
						$(this).addClass("disabled");
						//2.发送秒杀请求，执行秒杀
						$.post(killUrl,{},function(result){
							if(result && result['success']){
								var killResult=result['data'];
								var state = killResult['state'];
								var stateinfo = killResult['stateinfo'];
								//3.显示秒杀结果
								node.html('<span class="label label-success">'+stateinfo+'</span>').show();
							}
						});
					});
				}else{
					//未开启秒杀
					var now = exposer['now'];
					var start = exposer['start'];
					var end = exposer['end'];
					//重新计算计时逻辑
					seckill.countdown(seckillId, now, start, end);
				}
			}else{
				console.log('result:'+result);
			}
			
		});
	},
	//验证手机号
	validatePhone:function(phone){
		if(phone && phone.length == 11 && !isNaN(phone)){
			return true;
		}else{
			return false;
		}
	},
	countdown:function(seckillId,nowTime,startTime,endTime){
		var seckillBox=$("#seckill-box");
		//时间的判断
		if(nowTime>endTime){
			//秒杀结束
			seckillBox.html('秒杀结束!');
		}else if(nowTime<startTime){
			//秒杀未开始
			var killTime = new Date(startTime+1000);			
			seckillBox.countdown(killTime,function(event){
				var format = event.strftime('秒杀倒计时:%D天 %H时 %M分 %S秒');
				seckillBox.html(format);
			}).on('finish.countdown',function(){
				//获取秒杀地址，控制显示逻辑，执行秒杀
				seckill.handleSeckill(seckillId,seckillBox);
			});
		}else{
			//秒杀开始
			seckill.handleSeckill(seckillId,seckillBox);
		}
	},
	//详情页秒杀逻辑
	detail:{
		//详情页初始化
		init:function(params){
			//手机验证和登录，计时交互
			//规划我们的交互流程
			//在cookie中查找手机号			
			var killPhone = $.cookie('killPhone');			
			//验证手机号
			if(!seckill.validatePhone(killPhone)){
				//绑定phone
				//控制输出
				var killPhoneModal = $("#killPhoneModal");
				//显示弹出层
				killPhoneModal.modal({
					show:true,//显示弹出层
					backdrop:'static',//禁止位置关闭
					keyboard:false//关闭键盘事件
				});
				$("#killPhoneBtn").click(function(){
					var inputPhone = $("#killPhoneKey").val();
					if(seckill.validatePhone(inputPhone)){
						//电话写入cookie
						$.cookie('killPhone',inputPhone,{expires:7,path:'/seckill'});
						//刷新页面
						window.location.reload();
					}else{
						$("#killPhoneMessage").hide().html('<label class="label label-danger">手机号错误</label>').show(300);
					};
					
				});
			}
			//已经登录
			//计时交互
			var startTime = params['startTime'];
			var endTime = params['endTime'];
			var seckillId = params['seckillId'];
			$.get(seckill.URL.now(),{},function(result){
				if(result && result['success']){
					var nowTime= result['data'];
					//时间判断，计时交互
					seckill.countdown(seckillId, nowTime, startTime, endTime);
					
				}else{
					conlose.log('result:'+result);
				}
			});
			
		}
	}	
};